package com.ruoyi.mapper;

import java.util.List;
import com.ruoyi.domain.ProImpl;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

/**
 * 施工资料Mapper接口
 * 
 * @author ruoyi
 * @date 2020-06-28
 */
public interface ProImplMapper 
{
    /**
     * 查询施工资料
     * 
     * @param imId 施工资料ID
     * @return 施工资料
     */
    public ProImpl selectProImplById(Long imId);

    /**
     * 查询施工资料列表
     * 
     * @param proImpl 施工资料
     * @return 施工资料集合
     */
    public List<ProImpl> selectProImplList(ProImpl proImpl);


    /**
     * 查询总项目对应的施工资料列表
     *
     * @param
     * @return 竣工资料集合
     */
    @Select("select * from pro_impl where im_pro = #{sId}")
    @ResultMap("ProImplResult")
    public List<ProImpl> selectProImplLists(Long sid);

    /**
     * 新增施工资料
     * 
     * @param proImpl 施工资料
     * @return 结果
     */
    public int insertProImpl(ProImpl proImpl);

    /**
     * 修改施工资料
     * 
     * @param proImpl 施工资料
     * @return 结果
     */
    public int updateProImpl(ProImpl proImpl);

    /**
     * 删除施工资料
     * 
     * @param imId 施工资料ID
     * @return 结果
     */
    public int deleteProImplById(Long imId);

    /**
     * 批量删除施工资料
     * 
     * @param imIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteProImplByIds(String[] imIds);

    /**
     * 提交【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int submitExaStatus(Long id);

    /**
     * 撤销【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int revoExaStatus(Long id);
    /**
     * 销假【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int repExaStatus(Long id);
    /**
     * 通过申请【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int conExaStatus(Long id);
    /**
     * 驳回申请【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int editExaStatus(Long id);

    /**
     *
     * @param pro
     * @return 导出所有
     */
    public List<ProImpl> selectall(ProImpl pro);
}
